package com.powernobug.bean.model;

import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
* @Author: 肖云戈
* @CreateTime: 2024-09-02
* @Description: ${description}
*/

/**
 * 优惠券信息及规则表
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MarketCoupon {
    protected Integer id;

    /**
     * 优惠券名称
     */
    protected String name;

    /**
     * 优惠券介绍，通常是显示优惠券使用限制文字
     */
    protected String desc;

    /**
     * 优惠券标签，例如新人专用
     */
    protected String tag;

    /**
     * 优惠券数量，如果是0，则是无限量
     */
    protected Integer total;

    /**
     * 优惠金额，
     */
    protected BigDecimal discount;

    /**
     * 最少消费金额才能使用优惠券。
     */
    protected BigDecimal min;

    /**
     * 用户领券限制数量，如果是0，则是不限制；默认是1，限领一张.
     */
    protected Short limit;

    /**
     * 优惠券赠送类型，如果是0则通用券，用户领取；如果是1，则是注册赠券；如果是2，则是优惠券码兑换；
     */
    protected Short type;

    /**
     * 优惠券状态，如果是0则是正常可用；如果是1则是过期; 如果是2则是下架。
     */
    protected Short status;

    /**
     * 商品限制类型，如果0则全商品，如果是1则是类目限制，如果是2则是商品限制。
     */
    protected Short goodsType;

    /**
     * 商品限制值，goods_type如果是0则空集合，如果是1则是类目集合，如果是2则是商品集合。
     */
    protected String goodsValue;

    /**
     * 优惠券兑换码
     */
    protected String code;

    /**
     * 有效时间限制，如果是0，则基于领取时间的有效天数days；如果是1，则start_time和end_time是优惠券有效期；
     */
    protected Short timeType;

    /**
     * 基于领取时间的有效天数days。
     */
    protected Short days;

    /**
     * 使用券开始时间
     */
    protected Date startTime;

    /**
     * 使用券截至时间
     */
    protected Date endTime;

    /**
     * 创建时间
     */
    protected Date addTime;

    /**
     * 更新时间
     */
    protected Date updateTime;

    /**
     * 逻辑删除
     */
    protected Boolean deleted;
}